package cn.kow.kmall.service;

import cn.kow.kmall.pojo.dto.OrderQueryDTO;
import cn.kow.kmall.pojo.entity.Order;
import cn.kow.kmall.pojo.entity.OrderItem;
import org.springframework.data.domain.Page;

import java.util.List;

public interface OrderService {

    /**
     * 订单列表
     *
     * @param queryDTO 查询条件
     * @return 结果
     */
    Page<Order> listByPage(OrderQueryDTO queryDTO);

    /**
     * 创建订单
     * @param order   order
     * @param itemList  商品列表
     * @return 订单
     */
    Order createOrder(Order order, List<OrderItem> itemList);

    /**
     * 订单号获取订单
     * @param orderNo   订单号
     * @return  订单
     */
    Order getOrder(String orderNo);

    /**
     * 更新订单
     * @param order 订单
     */
    void updateOrder(Order order);

    /**
     *
     * @param orderNo
     * @return
     */
    List<OrderItem> listOrderItem(String orderNo);

    /**
     *
     * @param orderNo
     * @param limit
     * @return
     */
    List<OrderItem> listOrderItemByLimit(String orderNo, Integer limit);

    /**
     *
     * @param orderItem
     */
    void updateOrderItem(OrderItem orderItem);
}
